/*
 * 文件名：CarBillDetailDao.java 版权：Copyright by www.huawei.com 描述： 修改人：Administrator 修改时间：2016年4月12日
 * 跟踪单号： 修改单号： 修改内容：
 */

package com.zcsy.manage.persistence.property;


import java.util.List;
import java.util.Map;

import com.zcsy.manage.model.property.CarBill;
import com.zcsy.manage.model.property.CarBillDetail;


/**
 * @Title: CarBillDetailDao.java
 * @Package： com.zcsy.manage.persistence.property
 * @Description: 停车费账单详情管理Dao层
 * @author xujl
 * @Copyright: 2015 武汉中财数元信息技术有限公司 All rights reserved.
 * @date 2016年4月19日
 * @version 1.0
 * @see JDK1.7.0_75
 * @since
 */
public interface CarBillDetailDao {
    /**
     * @Description 插入停车费缴费详情信息<br>
     * @param record
     *            停车费缴费详情对象
     * @return 1：插入成功；0：插入失败
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    int insert(CarBillDetail record);

    /**
     * @Description 更新停车费缴费详情信息<br>
     * @param record
     *            停车费缴费对象
     * @return 1：更新成功；0：更新失败
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    int updateByPrimaryKey(CarBillDetail record);

    /**
     * @Description 根据主键删除停车费缴费详情信息<br>
     * @param id
     *            主键id
     * @return 1：删除成功；0：删除失败
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    int deleteByPrimaryKey(String id);

    /**
     * @Description 根据主键获取缴费详情信息详情<br>
     * @param id
     *            主键id
     * @return 缴费对象
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    CarBillDetail selectByPrimaryKey(String id);
    
    /**
     * @Description 根据停车账单id获取缴费详情信息详情<br>
     * @param carID
     *            停车账单id
     * @return 缴费对象
     * @author liuziyu
     * @date 2016年4月14日
     * @see
     */
    CarBillDetail selectBycarID(String carID);

    /**
     * @Description 根据小区id和车牌号获取最近一条缴费详情信息详情<br>
     * @param params
     *           小区id cellId， 车牌号 carNo
     * @return 缴费对象
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    CarBillDetail selectLastBill(Map<String, Object> params);

    /**
     * @Description 根据关键字获取缴费详情信息列表<br>
     * @param CarNo
     *            车牌号
     * @return 缴费详情列表
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    List<CarBillDetail> selectByCarNo(String CarNo);

    /**
     * @Description 根据关键字获取缴费详情信息列表<br>
     * @param record
     *            缴费详情对象
     * @return 缴费详情列表
     * @author xujl
     * @date 2016年4月14日
     * @see
     */
    List<CarBill> selectByKeyword(CarBillDetail record);
    
    /**
     * @Method: selectCarBillDetailByHouseId
     * @Description 根据房屋id查询一条最近缴费记录
     * @param housesID
     * @return 
     * @author liuziyu liuziyuwri@foxmail.com
     * @date 2016年7月7日
     * @see 
     */
    List<CarBillDetail> selectCarBillDetailByHouseId(List<String> housesID);
    
    /**
     * @Description 根据车牌号获取车辆账单详情
     * @param carNo
     * @return
     */
    CarBillDetail getCarWithProperty(String carNo);
}
